package PacoteFinal;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Vitor
 */

import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;

class listaFilmes extends AbstractTableModel {
    
    private ArrayList<Filmes> filmes;
    
    public listaFilmes()
    {
        filmes = new ArrayList<Filmes>();
    }
    
    public void inserir(String filme, String data, String horario, int ingressos, int sala) 
    {
        filmes.add(new Filmes(filme, data, horario, ingressos, sala));
        fireTableDataChanged();
    }
    
    public boolean setIngressos(String s)
    {
        int i = Row(s);
        if(filmes.get(i).setIngressos())
            return true;
        fireTableDataChanged();
        
        return false;
    }
    
    public void remove(int index)
    {
        filmes.remove(index);
        fireTableDataChanged();
    }
    
    public Object[] getFilme()
    {
        ArrayList<Object> obj = new ArrayList<Object>();
        
        for(int i = 0;i < filmes.size();i++)
            obj.add(filmes.get(i).getFilme());
        
        
        Object[] t1 = new Object[filmes.size()];
        obj.toArray(t1);
        
        return t1;
    }
    
    public int getIngressosOriginal(int i)
    {
        return filmes.get(i).getIngressosOriginal();
    }
    
    public int getIngressos(int i)
    {
        return filmes.get(i).getIngressos();
    }
    
    public int Row(String s)
    {
        for(int i = 0; i < this.getRowCount(); i++)
            if( s == filmes.get(i).getFilme())
                return i;
        
        return -1;
    }
    
    public String getHorario(int i)
    {
        return filmes.get(i).getData();
    }
    
    
    public int getNr_Sala(int i)
    {
        return filmes.get(i).getNr_Sala();
    }
 
    @Override
    public int getRowCount() {
        return filmes.size();
    }

    @Override
    public int getColumnCount() {
        return 5;
    }
    
    @Override
    public String getColumnName(int column) {
        switch(column) 
        {
            case 0: return "Filme";
            case 1: return "Data";
            case 2: return "Horario";
            case 3: return "Ingressos";
            case 4: return "Sala";
        }
        return null;
    }

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        switch(columnIndex) {
            case 0: return filmes.get(rowIndex).getFilme();
            case 1: return filmes.get(rowIndex).getData();
            case 2: return filmes.get(rowIndex).getHorario();
            case 3: return filmes.get(rowIndex).getIngressos();
            case 4: return filmes.get(rowIndex).getNr_Sala();
        }
        return null;
    }
}
